package maxArea11;

public class maxArea {

    public static void main(String[] args) {

    }

    public int maxArea(int[] height) {
        int res=0;
        int len = height.length;
        int i=0;
        int j=len-1;
        while (j>i){
            //面积
            int area = (j - i) * Math.min(height[i], height[j]);
            res = Math.max(res, area);
            if(height[i] < height[j]){
                i++;
            }else{
                j--;
            }
        }
        return res;
    }

    /*问题的核心要理解双指针对应的高度中要移动哪一个才能保证筛选出最大的。
    水的高度取决于两根柱子之间较短的那个，即左边柱子的高度 h = 3。水的面积就是 3×8=24。

    如果选择固定一根柱子，另外一根变化，水的面积会有什么变化吗？稍加思考可得：

    1. 当前柱子是最两侧的柱子，水的宽度 d 为最大，其他的组合，水的宽度都比这个小。
    2. 左边柱子较短，决定了水的高度为 3。如果移动左边的柱子，新的水面高度不确定，一定不会超过右边的柱子高度 7 (因为水的高度取决于两根柱子之间较短的那个)。
    3. 如果移动右边的柱子，新的水面高度一定不会超过左边的柱子高度 3，也就是不会超过现在的水面高度。那就出现宽度变小高度不变面积一定变小

     */
}
